home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-09-14 | 54.6 KB | 1,560 lines |
- //
- // Copyright (c) 1995 SPEA Software AG All Rights Reserved
- //
- //# @(#)figlv37.sdd 3.00 95/08/09 SPEA (BIOS 1.01)
- //
- // figlv37.sdd - SVPMI File for SPEA FIRE GL
- //
- // 1600x1200x16 76.6 / 61 kHz / Hz
- // 1600x1200x8 76.6 / 61 kHz / Hz
- // 1280x1024x32 63.7 / 60 kHz / Hz
- // 1280x1024x16 63.7 / 60 kHz / Hz
- // 1280x1024x8 63.7 / 60 kHz / Hz
- // 1152x864x8 55.7 / 61 kHz / Hz
- // 1024x768x32 48.5 / 60 kHz / Hz
- // 1024x768x16 48.5 / 60 kHz / Hz
- // 1024x768x8 48.5 / 60 kHz / Hz
- // 800x600x32 38.0 / 60 kHz / Hz
- // 800x600x16 38.0 / 60 kHz / Hz
- // 800x600x8 38.0 / 60 kHz / Hz
- // 640x480x32 38.1 / 73 kHz / Hz
- // 640x480x16 38.1 / 73 kHz / Hz
- // 640x480x8 38.1 / 73 kHz / Hz
- // 640x400x8 31.4 / 70 kHz / Hz
-
- [VERSION]
- 1.0;
-
- [ACTIVE_ADAPTER]
- SPEA FIRE GL (bis 37 kHz Multiscan);
-
- [ADAPTER]
- SPEA FIRE GL (bis 37 kHz Multiscan);
-
- [ADAPTER_INFO]
- BoardType = VGA;
- SaveSize = 100;
- PaletteSize = 768;
- //# MemorySize = 0;
-
- // ***********************************
- // 0x007E
- // ***********************************
- [MODE]
- 0x007E;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 3200;
- XResolution = 1600;
- YResolution = 1200;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 2;
- BitsPerPixel = 16;
- NumberOfColors = 65536;
- BitsRGB = 6;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x6;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x7e; r1 = 0x64; r2 = 0x62; r3 = 0x01; r4 = 0x67;
- r5 = 0x11; r6 = 0xe8; r7 = 0x00; r8 = 0x00; r9 = 0x00;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0xc0; r17 = 0x8c; r18 = 0xaf; r19 = 0x90;
- r20 = 0x00; r21 = 0xaf; r22 = 0x00; r23 = 0xa3; r24 = 0xaf;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x77);
- outb(0x3d4,0x34);outb(0x3d5,0x10);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x57);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x14);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: fc 3a b0, DCLK = 160363616 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xfc);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x3a);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x38);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x06);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xfc3ab0;
- //# DacMode = 0x5;
- //# Cr42 = 0x52;
-
- // ***********************************
- // 0x007C
- // ***********************************
- [MODE]
- 0x007C;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 1600;
- XResolution = 1600;
- YResolution = 1200;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 1;
- BitsPerPixel = 8;
- NumberOfColors = 256;
- BitsRGB = 6;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x4;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x7e; r1 = 0x64; r2 = 0x62; r3 = 0x01; r4 = 0x67;
- r5 = 0x11; r6 = 0xe8; r7 = 0x00; r8 = 0x00; r9 = 0x00;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0xc0; r17 = 0x8c; r18 = 0xaf; r19 = 0xc8;
- r20 = 0x00; r21 = 0xaf; r22 = 0x00; r23 = 0xa3; r24 = 0xaf;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x77);
- outb(0x3d4,0x34);outb(0x3d5,0x10);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x57);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x12);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: fc 3a b0, DCLK = 160363616 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xfc);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x3a);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x30);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf0);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb0);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x39);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xfc3ab0;
- //# DacMode = 0x2;
- //# Cr42 = 0x52;
-
- // ***********************************
- // 0x007B
- // ***********************************
- [MODE]
- 0x007B;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 3840;
- XResolution = 1280;
- YResolution = 1024;
- XCharSize = 8;
- YCharSize = 8;
- Colormodel = 2;
- BitsPerPixel = 32;
- NumberOfColors = 16777216;
- BitsRGB = 6;
- RedSize = 8;
- RedPosition = 16;
- GreenSize = 8;
- GreenPosition = 8;
- BlueSize = 8;
- BluePosition = 0;
- ReservedSize = 8;
- ReservedPosition = 24;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x6;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x67; r1 = 0x4f; r2 = 0x50; r3 = 0x86; r4 = 0x52;
- r5 = 0x9e; r6 = 0x22; r7 = 0x42; r8 = 0x00; r9 = 0x40;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x02; r17 = 0x85; r18 = 0xff; r19 = 0x80;
- r20 = 0x00; r21 = 0x00; r22 = 0x31; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x60);
- outb(0x3d4,0x34);outb(0x3d5,0x10);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x55);
- outb(0x3d4,0x67);outb(0x3d5,0x00);
- outb(0x3d4,0x6d);outb(0x3d5,0x12);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: e8 11 b1, DCLK = 109963622 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xe8);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x11);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x31);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf9);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf1);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x38);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xe811b1;
- //# DacMode = 0x7;
- //# Cr42 = 0xe;
-
- // ***********************************
- // 0x007A
- // ***********************************
- [MODE]
- 0x007A;
- [MODEINFO]
- ModeAttributes = 0x1a;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 2560;
- XResolution = 1280;
- YResolution = 1024;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 2;
- BitsPerPixel = 16;
- NumberOfColors = 65536;
- BitsRGB = 6;
- RedSize = 5;
- RedPosition = 11;
- GreenSize = 6;
- GreenPosition = 5;
- BlueSize = 5;
- BluePosition = 0;
- ReservedSize = 0;
- ReservedPosition = 0;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x6;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x67; r1 = 0x4f; r2 = 0x50; r3 = 0x86; r4 = 0x52;
- r5 = 0x9e; r6 = 0x22; r7 = 0x42; r8 = 0x00; r9 = 0x40;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x02; r17 = 0x85; r18 = 0xff; r19 = 0x40;
- r20 = 0x00; r21 = 0x00; r22 = 0x31; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x60);
- outb(0x3d4,0x34);outb(0x3d5,0x10);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x55);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: e8 11 b1, DCLK = 109963622 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xe8);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x11);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x31);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf1);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x38);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x06);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xe811b1;
- //# DacMode = 0x5;
- //# Cr42 = 0x4e;
-
- // ***********************************
- // 0x006F
- // ***********************************
- [MODE]
- 0x006F;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 1280;
- XResolution = 1280;
- YResolution = 1024;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 1;
- BitsPerPixel = 8;
- NumberOfColors = 256;
- BitsRGB = 6;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x4;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x67; r1 = 0x4f; r2 = 0x50; r3 = 0x86; r4 = 0x52;
- r5 = 0x9e; r6 = 0x22; r7 = 0x42; r8 = 0x00; r9 = 0x40;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x02; r17 = 0x85; r18 = 0xff; r19 = 0xa0;
- r20 = 0x00; r21 = 0x00; r22 = 0x31; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x60);
- outb(0x3d4,0x34);outb(0x3d5,0x10);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x55);
- outb(0x3d4,0x67);outb(0x3d5,0x18);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: e8 11 b1, DCLK = 109963622 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xe8);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x11);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x31);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf1);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x39);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xe811b1;
- //# DacMode = 0x2;
- //# Cr42 = 0x4e;
-
- // ***********************************
- // 0x004E
- // ***********************************
- [MODE]
- 0x004E;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 1152;
- XResolution = 1152;
- YResolution = 864;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 1;
- BitsPerPixel = 8;
- NumberOfColors = 256;
- BitsRGB = 6;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x4;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x55; r1 = 0x47; r2 = 0x47; r3 = 0x00; r4 = 0x49;
- r5 = 0x0f; r6 = 0x94; r7 = 0xff; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x70; r17 = 0x83; r18 = 0x5f; r19 = 0x90;
- r20 = 0x60; r21 = 0x6f; r22 = 0x8d; r23 = 0xeb; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x4e);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: fc 3a b1, DCLK = 80181808 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xfc);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x3a);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x31);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf1);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x39);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xfc3ab1;
- //# DacMode = 0x2;
- //# Cr42 = 0x8c;
-
- // ***********************************
- // 0x0078
- // ***********************************
- [MODE]
- 0x0078;
- [MODEINFO]
- ModeAttributes = 0x1a;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 4096;
- XResolution = 1024;
- YResolution = 768;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 2;
- BitsPerPixel = 32;
- NumberOfColors = 16777216;
- BitsRGB = 6;
- RedSize = 8;
- RedPosition = 16;
- GreenSize = 8;
- GreenPosition = 8;
- BlueSize = 8;
- BluePosition = 0;
- ReservedSize = 8;
- ReservedPosition = 24;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x6;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x4f; r1 = 0x3f; r2 = 0x3f; r3 = 0x03; r4 = 0x42;
- r5 = 0x0a; r6 = 0x20; r7 = 0xf5; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x02; r17 = 0x88; r18 = 0xff; r19 = 0x00;
- r20 = 0x00; r21 = 0xff; r22 = 0x20; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x48);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x00);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: eb 28 b1, DCLK = 65082636 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xeb);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x28);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x31);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x39);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf1);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x38);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xeb28b1;
- //# DacMode = 0x7;
- //# Cr42 = 0x49;
-
- // ***********************************
- // 0x0077
- // ***********************************
- [MODE]
- 0x0077;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 2048;
- XResolution = 1024;
- YResolution = 768;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 2;
- BitsPerPixel = 16;
- NumberOfColors = 65536;
- BitsRGB = 6;
- RedSize = 5;
- RedPosition = 11;
- GreenSize = 6;
- GreenPosition = 5;
- BlueSize = 5;
- BluePosition = 0;
- ReservedSize = 0;
- ReservedPosition = 0;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x6;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x4f; r1 = 0x3f; r2 = 0x3f; r3 = 0x03; r4 = 0x42;
- r5 = 0x0a; r6 = 0x20; r7 = 0xf5; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x02; r17 = 0x88; r18 = 0xff; r19 = 0x00;
- r20 = 0x00; r21 = 0xff; r22 = 0x20; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x48);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: eb 28 b1, DCLK = 65082636 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xeb);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x28);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x31);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf1);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x38);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x06);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xeb28b1;
- //# DacMode = 0x5;
- //# Cr42 = 0x89;
-
- // ***********************************
- // 0x006D
- // ***********************************
- [MODE]
- 0x006D;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 1024;
- XResolution = 1024;
- YResolution = 768;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 1;
- BitsPerPixel = 8;
- NumberOfColors = 256;
- BitsRGB = 6;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x4;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x4f; r1 = 0x3f; r2 = 0x3f; r3 = 0x03; r4 = 0x42;
- r5 = 0x0a; r6 = 0x20; r7 = 0xf5; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x02; r17 = 0x88; r18 = 0xff; r19 = 0x80;
- r20 = 0x00; r21 = 0xff; r22 = 0x20; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x48);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: eb 28 b1, DCLK = 65082636 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xeb);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x28);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x31);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf1);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb1);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x39);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xeb28b1;
- //# DacMode = 0x2;
- //# Cr42 = 0x89;
-
- // ***********************************
- // 0x0075
- // ***********************************
- [MODE]
- 0x0075;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 3200;
- XResolution = 800;
- YResolution = 600;
- XCharSize = 8;
- YCharSize = 8;
- Colormodel = 2;
- BitsPerPixel = 32;
- NumberOfColors = 16777216;
- BitsRGB = 6;
- RedSize = 8;
- RedPosition = 16;
- GreenSize = 8;
- GreenPosition = 8;
- BlueSize = 8;
- BluePosition = 0;
- ReservedSize = 8;
- ReservedPosition = 24;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x6;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x3d; r1 = 0x33; r2 = 0x31; r3 = 0x00; r4 = 0x35;
- r5 = 0x1d; r6 = 0x72; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x58; r17 = 0x8c; r18 = 0x57; r19 = 0x90;
- r20 = 0x00; r21 = 0x57; r22 = 0x00; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x36);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x08);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x04);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: fc 3a b2, DCLK = 40090904 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xfc);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x3a);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x32);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf9);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf2);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb2);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x38);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xfc3ab2;
- //# DacMode = 0x7;
- //# Cr42 = 0x84;
-
- // ***********************************
- // 0x0074
- // ***********************************
- [MODE]
- 0x0074;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 1600;
- XResolution = 800;
- YResolution = 600;
- XCharSize = 8;
- YCharSize = 8;
- Colormodel = 2;
- BitsPerPixel = 16;
- NumberOfColors = 65536;
- BitsRGB = 6;
- RedSize = 5;
- RedPosition = 11;
- GreenSize = 6;
- GreenPosition = 5;
- BlueSize = 5;
- BluePosition = 0;
- ReservedSize = 0;
- ReservedPosition = 0;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x6;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x3d; r1 = 0x33; r2 = 0x31; r3 = 0x00; r4 = 0x35;
- r5 = 0x1d; r6 = 0x72; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x58; r17 = 0x8c; r18 = 0x57; r19 = 0xc8;
- r20 = 0x00; r21 = 0x57; r22 = 0x00; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x36);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x08);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x14);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: fc 3a b2, DCLK = 40090904 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xfc);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x3a);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x32);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf2);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb2);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x38);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x06);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xfc3ab2;
- //# DacMode = 0x5;
- //# Cr42 = 0xc4;
-
- // ***********************************
- // 0x006B
- // ***********************************
- [MODE]
- 0x006B;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 800;
- XResolution = 800;
- YResolution = 600;
- XCharSize = 8;
- YCharSize = 8;
- Colormodel = 1;
- BitsPerPixel = 8;
- NumberOfColors = 256;
- BitsRGB = 6;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x4;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x3d; r1 = 0x33; r2 = 0x31; r3 = 0x00; r4 = 0x35;
- r5 = 0x1d; r6 = 0x72; r7 = 0xf0; r8 = 0x00; r9 = 0x60;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x58; r17 = 0x8c; r18 = 0x57; r19 = 0x64;
- r20 = 0x00; r21 = 0x57; r22 = 0x00; r23 = 0xe3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x36);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x08);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x14);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: fc 3a b2, DCLK = 40090904 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xfc);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x3a);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x32);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf2);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb2);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x39);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0x2f);
-
- //# [SPEA]
- //# SerialWord = 0xfc3ab2;
- //# DacMode = 0x2;
- //# Cr42 = 0xc4;
-
- // ***********************************
- // 0x0072
- // ***********************************
- [MODE]
- 0x0072;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 2560;
- XResolution = 640;
- YResolution = 480;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 2;
- BitsPerPixel = 32;
- NumberOfColors = 16777216;
- BitsRGB = 6;
- RedSize = 8;
- RedPosition = 16;
- GreenSize = 8;
- GreenPosition = 8;
- BlueSize = 8;
- BluePosition = 0;
- ReservedSize = 8;
- ReservedPosition = 24;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x6;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x2f; r1 = 0x27; r2 = 0x27; r3 = 0x00; r4 = 0x2a;
- r5 = 0x0c; r6 = 0x06; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0xe8; r17 = 0x8b; r18 = 0xdf; r19 = 0x40;
- r20 = 0x60; r21 = 0xdf; r22 = 0x06; r23 = 0xab; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x28);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x00);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: ae 2c b2, DCLK = 31650713 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xae);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x2c);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x32);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf9);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf2);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb2);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x38);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xae2cb2;
- //# DacMode = 0x7;
- //# Cr42 = 0x82;
-
- // ***********************************
- // 0x0071
- // ***********************************
- [MODE]
- 0x0071;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 1280;
- XResolution = 640;
- YResolution = 480;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 2;
- BitsPerPixel = 16;
- NumberOfColors = 65536;
- BitsRGB = 6;
- RedSize = 5;
- RedPosition = 11;
- GreenSize = 6;
- GreenPosition = 5;
- BlueSize = 5;
- BluePosition = 0;
- ReservedSize = 0;
- ReservedPosition = 0;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x6;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x2f; r1 = 0x27; r2 = 0x27; r3 = 0x00; r4 = 0x2a;
- r5 = 0x0c; r6 = 0x06; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0xe8; r17 = 0x8b; r18 = 0xdf; r19 = 0xa0;
- r20 = 0x60; r21 = 0xdf; r22 = 0x06; r23 = 0xab; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x28);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: ae 2c b2, DCLK = 31650713 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xae);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x2c);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x32);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xb1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf2);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb2);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x38);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x06);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xae2cb2;
- //# DacMode = 0x5;
- //# Cr42 = 0xc2;
-
- // ***********************************
- // 0x0069
- // ***********************************
- [MODE]
- 0x0069;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 640;
- XResolution = 640;
- YResolution = 480;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 1;
- BitsPerPixel = 8;
- NumberOfColors = 256;
- BitsRGB = 6;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x4;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x2f; r1 = 0x27; r2 = 0x27; r3 = 0x00; r4 = 0x2a;
- r5 = 0x0c; r6 = 0x06; r7 = 0x3e; r8 = 0x00; r9 = 0x40;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0xe8; r17 = 0x8b; r18 = 0xdf; r19 = 0x50;
- r20 = 0x60; r21 = 0xdf; r22 = 0x06; r23 = 0xab; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x28);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: ae 2c b2, DCLK = 31650713 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xae);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x2c);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x32);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf2);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb2);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x39);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xae2cb2;
- //# DacMode = 0x2;
- //# Cr42 = 0xc2;
-
- // ***********************************
- // 0x0068
- // ***********************************
- [MODE]
- 0x0068;
- [MODEINFO]
- ModeAttributes = 0x1b;
- WinAAttributes = 7;
- WinBAttributes = 0;
- WinAGranularity = 64;
- WinBGranularity = 64;
- WinASize = 64;
- WinBSize = 64;
- WinABase = 0xa0000;
- WinBBase = 0xa0000;
- BytesPerScanline = 640;
- XResolution = 640;
- YResolution = 400;
- XCharSize = 8;
- YCharSize = 16;
- Colormodel = 1;
- BitsPerPixel = 8;
- NumberOfColors = 256;
- BitsRGB = 6;
- NumberOfBanks = 1;
- BankSize = 0;
- MemoryModel = 0x4;
- NumberOfImagePages = 0;
-
- [SETMODE]
- outb(0x3d4,0x38);outb(0x3d5,0x48); // unlock S3 registers (30..3c);
- outb(0x3d4,0x39);outb(0x3d5,0xa5); // unlock system + extension (40..5f);
- outb(0x3d4,0x35);outb(0x3d5,0x00); // unlock timing regs;
- outb(0x3d4,0x11);outb(0x3d5,0x00); // unlock timing regs;
-
- r0 = 0x2d; r1 = 0x27; r2 = 0x28; r3 = 0x01; r4 = 0x2a;
- r5 = 0x10; r6 = 0xbf; r7 = 0x1f; r8 = 0x00; r9 = 0x40;
- r10 = 0x00; r11 = 0x00; r12 = 0x00; r13 = 0x00; r14 = 0xff;
- r15 = 0x00; r16 = 0x9c; r17 = 0x8e; r18 = 0x8f; r19 = 0x50;
- r20 = 0x40; r21 = 0x96; r22 = 0xb9; r23 = 0xa3; r24 = 0xff;
- boutb(25,0x3d4,0x3d5);// forced display start address to 0,0
-
- outb(0x3d4,0x3b);outb(0x3d5,0x26);
- outb(0x3d4,0x34);outb(0x3d5,0x00);
- outb(0x3d4,0x5d);outb(0x3d5,0x00);
- outb(0x3d4,0x5e);outb(0x3d5,0x00);
- outb(0x3d4,0x67);outb(0x3d5,0x10);
- outb(0x3d4,0x6d);outb(0x3d5,0x10);
-
-
- // TVP3026 clock synthesis
- // N/M/P value: fd 3a b3, DCLK = 25056815 Hz
- outb(0x3d4,0x55);
- // only p value
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x22);
- // pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x00);
- // loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x00);
-
- // program pixel clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x00);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xfd);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x3a);
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0x33);
-
- // program loop clock
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0x02);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xa1);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0x3d);
- outb(0x3d5,0x00); outb(0x3c8,0x2f); outb(0x3d5,0x02); outb(0x3c6,0xf3);
-
- // enable pixel clock (bit 7)
- outb(0x3d5,0x00); outb(0x3c8,0x2d); outb(0x3d5,0x02); outb(0x3c6,0xb3);
-
- // divider for pixel frequency
- outb(0x3d5,0x00); outb(0x3c8,0x39); outb(0x3d5,0x02); outb(0x3c6,0x3b);
-
- // set index for PLL to status reg (R_ONLY)
- outb(0x3d5,0x00); outb(0x3c8,0x2c); outb(0x3d5,0x02); outb(0x3c6,0xff);
- outb(0x3d5,0x00); outb(0x3c8,0x0f); outb(0x3d5,0x02); outb(0x3c6,0x07);
- outb(0x3d5,0x00);
-
- // Bit 2&3 set enable loading of DCLK parameters
- outb(0x3c2,0xef);
-
- //# [SPEA]
- //# SerialWord = 0xfd3ab3;
- //# DacMode = 0x2;
- //# Cr42 = 0x80;
-
-